#pragma once
#include <string>
#include <vector>

namespace krryn{
namespace view{
	enum target_type{
		target_depth_stencil,
		target_rgba,
	};

	class renderer;
	class render_target{
	public:
		render_target(int a_Width, int a_Height) : m_Width(a_Width), m_Height(a_Height) {}
		virtual ~render_target() {}
		virtual void attach(target_type a_Type, const std::string &a_Name) = 0;
		virtual void start_render() = 0;
		virtual void end_render() = 0;
		virtual std::vector<std::string> get_attachment_names() = 0;
		void draw(renderer &a_Renderer);
	protected:
		int m_Width;
		int m_Height;
	};
}
}